﻿//IStrategyStorage.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace Ecng.Trading.Algo.Storages
{
	using System.Collections.Generic;

	using Ecng.Trading.Algo.Strategies;
	using Ecng.Trading.BusinessEntities;

	/// <summary>
	/// Интерфейс, описывающий внешнее хралищиле (база данных, файл и т.д.) для торговых стратегий <see cref="Strategy"/>.
	/// </summary>
	public interface IStrategyStorage : IExtendableEntity
	{
		/// <summary>
		/// Уникальный идентификатор стратегии.
		/// </summary>
		string Id { get; set; }

		/// <summary>
		/// Идентификатор инструмента.
		/// </summary>
		string SecurityId { get; set; }

		/// <summary>
		/// Название портфеля.
		/// </summary>
		string PortfolioId { get; set; }

		/// <summary>
		/// Словарь, содержащий настройки стратегии.
		/// </summary>
		IDictionary<string, string> Settings { get; set; }

		/// <summary>
		/// Собственные сделки стратегии, полученные из внешнего хранилища.
		/// </summary>
		IStorageList<MyTrade> MyTrades { get; }

		/// <summary>
		/// Заявки стратегии, полученные из внешнего хранилища.
		/// </summary>
		IStorageList<Order> Orders { get; }

		/// <summary>
		/// Заявки стратегии с ошибками, полученные из внешнего хранилища.
		/// </summary>
		IStorageList<OrderFail> OrderFails { get; }
	}
}